<?php
require_once("libs/controller.php");
require_once("modelos/personas.php");
require_once("modelos/alcances.php");
require_once("modelos/clasificaciones.php");
require_once("modelos/tematicas.php");
require_once("modelos/tipos.php");
require_once("modelos/entidades.php");
require_once("modelos/estatus.php");
require_once("modelos/correlativos.php");
require_once("modelos/actividades.php");
require_once("modelos/usuarios.php");
require_once("modelos/tratamientos.php");
require_once("modelos/actividadesusuarios.php");
require_once("modelos/actuaciones.php");
require_once("modelos/actuacionesusuarios.php");
require_once("modelos/actuacionesparticipantes.php");
require_once("modelos/actuacionesponentes.php");
require_once("libs/funciones.php");

class ConsultasController extends Controller 
{
	public function __construct() 
	{
		$this->layout = "aplicacion";
		$this->pageTitle = "Escuela Nacional de Fiscales";	
	}
	
	public function index() 
	{
		try 
		{
			$this->layout = "aplicacion";
			$_SESSION["pestania"] = 2;
			$this->nivelesPermitidos = array(2,3,4); //supervisor,planificador,operador
			extract($_REQUEST);
			$this->actividades_usuarios=new Actividadesusuarios();
			$this->actividades_usuarios->addCondition("tipo_planificador","1");
			$this->actividades_usuarios->addOrderBy("id", DB_ASC);
			$this->actividades_usuarios->doSelectAll();
			$this->logger->info(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()." actividades->index ");
		} 
		catch (Exception $e) 
		{
			$this->logger->error(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()." Error en actividades->index: ".$e->getMessage());
			$mensaje="Ha ocurrido un error al consultar la informaci&oacute;n. Por favor intente m&aacute;s tarde.";
			$this->continuar=false;
			$this->showNotificacion("",$mensaje,"Regresar","actividades/","aplicacion","");
		}
	}
	
	public function actividad() 
	{
		try 
		{
			$this->layout = "aplicacion";
			$_SESSION["pestania"] = 2;
			$this->nivelesPermitidos = array(2,3,4); //supervisor,planificador,operador
			extract($_REQUEST);
			$this->idActividad=$idActividad;
			
			//creacion objetos modelos
			$this->actividad=new Actividades();
			$actividades_usuarios=new Actividadesusuarios();
			
			//obteniendo actividad 
			$this->actividad->addCondition("id",$idActividad);
			$this->actividad->doSelectAll();
			$this->actividad->next();
			
			//consultas tablas clasificaciones, tematicas, alcances, tipos, entidades, estatus, planificadores
			$this->clasificaciones=new Clasificaciones();
			$this->clasificaciones->doSelectAll();
			$this->tematicas=new Tematicas();
			$this->tematicas->doSelectAll();
			$this->alcances=new Alcances();
			$this->alcances->doSelectAll();
			$this->tipos=new Tipos();
			$this->tipos->doSelectAll();
			$this->entidades=new Entidades();
			$this->entidades->doSelectAll();
			$this->estatus=new Estatus();
			$this->estatus->doSelectAll();
			$this->planificadores=new Usuarios();
			$this->planificadores->addCondition("id_nivel_usuario","3");
			$this->planificadores->addCondition("estatus","1");
			$this->planificadores->addOrderBy("nombres",DB_ASC);
			$this->planificadores->doSelectAllWithForeign("personas","id_persona");
			
			/*planificador 1*/
			$actividades_usuarios->addCondition("id_actividad",$idActividad);
			$actividades_usuarios->addCondition("tipo_planificador","1");
			$actividades_usuarios->doSelectAll();
			if($actividades_usuarios->next())
			{
				$this->planificador1=$actividades_usuarios->getValue("id_usuario");;
			}
			else
			{
				$this->planificador1="";
			}
			/*fin planificador 1*/
			
			$actividades_usuarios->clear();
			/*planificador 2*/
			$actividades_usuarios->addCondition("id_actividad",$idActividad);
			$actividades_usuarios->addCondition("tipo_planificador","2");
			$actividades_usuarios->doSelectAll();
			if($actividades_usuarios->next())
			{
				$this->planificador2=$actividades_usuarios->getValue("id_usuario");;
			}
			else
			{
				$this->planificador2="";
			}
			/*fin planificador 2*/
			
			$actividades_usuarios->clear();
			/*planificador 3*/
			$actividades_usuarios->addCondition("id_actividad",$idActividad);
			$actividades_usuarios->addCondition("tipo_planificador","3");
			$actividades_usuarios->doSelectAll();
			if($actividades_usuarios->next())
			{
				$this->planificador3=$actividades_usuarios->getValue("id_usuario");;
			}
			else
			{
				$this->planificador3="";
			}
			/*fin planificador 3*/
			
			$this->logger->info(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()." actividades->editar");
		} 
		catch (Exception $e) 
		{
			$this->logger->error(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getIdPersona()." Error en actividades->editar: ".$e->getMessage());
			$mensaje="Ha ocurrido un error al consultar su informaci&oacute;n. Por favor intente m&aacute;s tarde.";
			$this->continuar=false;
			$this->showNotificacion("",$mensaje,"Regresar","actividades/","aplicacion","");
		}
	}

	public function actuaciones() 
	{
		try 
		{
			$this->layout = "aplicacion";
			$_SESSION["pestania"] = 2;
			$this->nivelesPermitidos = array(2,3,4); //supervisor,planificador,operador
			extract($_REQUEST);
			$this->idActividad=$idActividad;
			
			//creacion de objetos modelos
			$this->actuaciones=new Actuaciones();
			$this->actividad=new Actividades();
			$actividad_usuario=new Actividadesusuarios();
			$this->planificador1=new Usuarios();
			
			//consultando actuaciones correspondiente a la actividad
			$this->actuaciones->addCondition("id_actividad",$idActividad);
			$this->actuaciones->addOrderBy("id", DB_ASC);
			$this->actuaciones->doSelectAll();
			
			//consultando detalle de la actividad
			$this->actividad->addCondition("id",$idActividad);
			$this->actividad->doSelectAll();
			$this->actividad->next();
			
			//consultando planificador1 asociado a la actividad
			$actividad_usuario->addCondition("id_actividad",$idActividad);
			$actividad_usuario->addCondition("tipo_planificador","1");
			$actividad_usuario->doSelectAll();
			$actividad_usuario->next();
			$this->planificador1->addCondition("usuarios.id",$actividad_usuario->getValue("id_usuario"));
			$this->planificador1->doSelectAllWithForeign("personas","id_persona");
			$this->planificador1->next();
			$this->logger->info(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()." actuaciones->index");
		} 
		catch (Exception $e) 
		{
			$this->logger->error(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()."Error en actuaciones->index: ".$e->getMessage());
			$mensaje="Ha ocurrido un error al consultar su informaci&oacute;n. Por favor intente m&aacute;s tarde.";
			$this->continuar=false;
			$this->showNotificacion("",$mensaje,"Regresar","actividades/","aplicacion","");
		}
	}
		
	public function actuacion() 
	{
		try 
		{
			$this->layout = "aplicacion";
			$_SESSION["pestania"] = 2;
			$this->nivelesPermitidos = array(2,3,4); //supervisor,planificador,operador
			
			extract($_REQUEST);
			$this->idActividad=$idActividad;
			$this->nombreActividad=$nombreActividad;
			$this->idActuacion=$idActuacion;
			$this->codigoActuacion=$codigoActuacion;
			
			$this->actuacion=new Actuaciones();
			$this->actuacion->doSelectOne($idActuacion);
			$this->actuacion->next();
			
			$this->actuacion_usuario=new Actuacionesusuarios();
			$this->actuacion_usuario->addCondition("id_actuacion",$idActuacion);
			$this->actuacion_usuario->doSelectAll();
			
			$this->clasificaciones=new Clasificaciones();
			$this->clasificaciones->doSelectAll();
			$this->tematicas=new Tematicas();
			$this->tematicas->doSelectAll();
			$this->alcances=new Alcances();
			$this->alcances->doSelectAll();
			$this->tipos=new Tipos();
			$this->tipos->doSelectAll();
			$this->planificadores=new Usuarios();
			$this->planificadores->addCondition("estatus","1");
			//$this->planificadores->addCondition("id_nivel_usuario","3,4",DB_IN);
			$this->planificadores->addCondition("id_nivel_usuario","3");
			$this->planificadores->addOrderBy("nombres",DB_ASC);
			$this->planificadores->doSelectAllWithForeign("personas","id_persona");
			$this->entidades=new Entidades();
			$this->entidades->doSelectAll();
			$this->estatus=new Estatus();
			$this->estatus->doSelectAll();
			
			
			$this->actividad=new Actividades();
			$this->actividad->addCondition("id",$idActividad);
			$this->actividad->doSelectAll();
			$this->actividad->next();
			
			$this->actuaciones_participantes=new Actuacionesparticipantes();
			$this->actuaciones_participantes->addCondition("id_actuacion",$idActuacion);
			$this->actuaciones_participantes->doSelectAll();
			
			$this->actuaciones_ponentes=new Actuacionesponentes();
			$this->actuaciones_ponentes->addCondition("id_actuacion",$idActuacion);
			$this->actuaciones_ponentes->doSelectAll();
			
			$this->tratamientos=new Tratamientos();
			$this->tratamientos->doSelectAll();
			$this->logger->info(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()." actuaciones->registrar asistencias");
			
			$this->logger->info(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()." actuaciones->editar");
		} 
		catch (Exception $e) 
		{
			$this->logger->error(LocalUser::getCurrentUser()->getId()." - ".LocalUser::getCurrentUser()->getAlias()."Error en actuaciones->editar: ".$e->getMessage());
			$mensaje="Ha ocurrido un error al consultar su informaci&oacute;n. Por favor intente m&aacute;s tarde.";
			$this->continuar=false;
			$this->showNotificacion("",$mensaje,"Aceptar","actividades/","aplicacion","");
		}
	}

	
	public function userNotAllowed() 
	{
		if (LocalUser::getCurrentUser()->getNivel() == -1)
			$this->showNotificacion("","Estimado usuario debe iniciar sesi&oacute;n.","Aceptar","usuario/index","principal","Escuela Nacional de Fiscales.-Login");
		else
			$this->showNotificacion("","Usuario no permitido","Aceptar","actuaciones/registrar","aplicacion","");
	}

	public function sessionExpired() 
	{
		$this->logger->info(LocalUser::getCurrentUser()->getId() ." " . LocalUser::getCurrentUser()->getAlias()." Sesion expirada");
		$this->showNotificacion("","Su sesi&oacute;n ha expirado.","Aceptar","usuario/index","aplicacion","");
	}
}
?>